home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr40 / x1j4_src.zip / L2S.C < prev    next >
Text File  |  1995-01-21  |  21KB  |  628 lines

  1. /**************************************************************************\
  2. *                                                                          *
  3. *                                                                          *
  4. *    *****                      *****                                      *
  5. *      *****                  *****                                        *
  6. *        *****              *****                                          *
  7. *          *****          *****                                            *
  8. *            *****      *****                                              *
  9. *              *****  *****                                                *
  10. *            *****      *****                                              *
  11. *          *****          *****          The Firmware. The Net.            *
  12. *        *****              *****        Portable. Compatible.             *
  13. *      *****                  *****      Public Domain.                    *
  14. *    *****                      *****    By NORD><LINK.                    *
  15. *                                                                          *
  16. *                                                                          *
  17. *                                                                          *
  18. *    L2S.C   -   Level 2 Statetable                                        *
  19. *                                                                          *
  20. *    angelegt:      DC4OX                                                  *
  21. *    modifiziert:                                                          *
  22. *                                                                          *
  23. *                                                                          *
  24. * September 1993 - released as TheNet X-1J                                 *
  25. *                                                                          *
  26. * Released as TheNet X-1J release 4, January 1995                          *
  27. \**************************************************************************/
  28.  
  29.  
  30.  
  31.  
  32.  
  33. /*                                                             Includes   */
  34. /**************************************************************************/
  35.  
  36. #include "all.h"         /* allgemeine Festlegungen                       */
  37. #include "tntyp.h"       /* Festlegungen/Datenstrukturen fuer den Level 2 */
  38.  
  39.  
  40.  
  41.  
  42.  
  43. /*                                                              Defines   */
  44. /**************************************************************************/
  45.  
  46. #define NUMSTATS 16           /* Anzahl States AX.25 Level 2              */
  47.  
  48.  
  49.  
  50. /*
  51.  *    0 L2SDSCED  -  disconnected
  52.  *    1 L2SLKSUP  -  link setup
  53.  *    2 L2SFRREJ  -  frame reject
  54.  *    3 LS2DSCRQ  -  disconnect request
  55.  *    4 L2SIXFER  -  information transfer
  56.  *    5 L2SRS     -  REJ sent
  57.  *    6 L2SWA     -  waiting acknowledge
  58.  *    7 L2SDBS    -  device busy
  59.  *    8 L2SRBS    -  remote busy
  60.  *    9 L2SBBS    -  both busy
  61.  *   10 L2SWADBS  -  waiting ack and device busy
  62.  *   11 L2SWARBS  -  waiting ack and remote busy
  63.  *   12 L2SWABBS  -  waiting ack and both busy
  64.  *   13 L2SRSDBS  -  REJ sent and device busy
  65.  *   14 L2SRSRBS  -  REJ sent and remote busy
  66.  *   15 L2SRSBBS  -  REJ sent and both busy
  67.  */
  68.  
  69.  
  70.  
  71.  
  72.  
  73. /*                                                            Externals   */
  74. /**************************************************************************/
  75.  
  76. extern xdm();
  77. extern xnull();
  78. extern xfrmr();
  79. extern xrrr();
  80. extern xrnrr();
  81. extern t2rrr();
  82. extern t2rnrr();
  83. extern xua();
  84. extern xsabm();
  85. extern xdisc();
  86. extern xrrc();
  87. extern xrnrc();
  88. extern t2rejr();
  89. extern xrejr();
  90.  
  91.  
  92.  
  93.  
  94.  
  95. /**************************************************************************\
  96. *                                                                          *
  97. *   I WITH POLL (COMMAND)                                                  *
  98. *                                                                          *
  99. \**************************************************************************/
  100.  
  101. STENTRY stbl00[NUMSTATS] =
  102.   {
  103.     { xdm    , L2SDSCED },
  104.     { xnull  , L2SLKSUP },
  105.     { xfrmr  , L2SFRREJ },
  106.     { xdm    , L2SDSCRQ },
  107.     { xrrr   , L2SIXFER },
  108.     { xrrr   , L2SIXFER },
  109.     { xrrr   , L2SWA    },
  110.     { xrnrr  , L2SDBS   },
  111.     { xrrr   , L2SRBS   },
  112.     { xrnrr  , L2SBBS   },
  113.     { xrnrr  , L2SWADBS },
  114.     { xrrr   , L2SWARBS },
  115.     { xrnrr  , L2SWABBS },
  116.     { xrnrr  , L2SRSDBS },
  117.     { xrrr   , L2SRBS   },
  118.     { xrnrr  , L2SRSBBS }
  119.   };
  120.  
  121.  
  122.  
  123. /**************************************************************************\
  124. *                                                                          *
  125. * I WITHOUT POLL (COMMAND)                                                 *
  126. *                                                                          *
  127. \**************************************************************************/
  128.  
  129. STENTRY stbl01[NUMSTATS] =
  130.   {
  131.     { xnull  , L2SDSCED },
  132.     { xnull  , L2SLKSUP },
  133.     { xnull  , L2SFRREJ },
  134.     { xnull  , L2SDSCRQ },
  135.     { t2rrr  , L2SIXFER },
  136.     { t2rrr  , L2SIXFER },
  137.     { t2rrr  , L2SWA    },
  138.     { t2rnrr , L2SDBS   },
  139.     { t2rrr  , L2SRBS   },
  140.     { t2rnrr , L2SBBS   },
  141.     { t2rnrr , L2SWADBS },
  142.     { t2rrr  , L2SWARBS },
  143.     { t2rnrr , L2SWABBS },
  144.     { t2rnrr , L2SRSDBS },
  145.     { t2rrr  , L2SRBS   },
  146.     { t2rnrr , L2SRSBBS }
  147.   };
  148.  
  149.  
  150.  
  151. /**************************************************************************\
  152. *                                                                          *
  153. * RR WITH POLL (COMMAND)                                                   *
  154. *                                                                          *
  155. \**************************************************************************/
  156.  
  157. STENTRY stbl02[NUMSTATS] =
  158.   {
  159.     { xdm    , L2SDSCED },
  160.     { xnull  , L2SLKSUP },
  161.     { xfrmr  , L2SFRREJ },
  162.     { xdm    , L2SDSCRQ },
  163.     { xrrr   , L2SIXFER },
  164.     { xrrr   , L2SRS    },
  165.     { xrrr   , L2SWA    },
  166.     { xrnrr  , L2SDBS   },
  167.     { xrrr   , L2SIXFER },
  168.     { xrnrr  , L2SDBS   },
  169.     { xrnrr  , L2SWADBS },
  170.     { xrrr   , L2SWA    },
  171.     { xrnrr  , L2SWADBS },
  172.     { xrnrr  , L2SRSDBS },
  173.     { xrrr   , L2SRS    },
  174.     { xrnrr  , L2SRSDBS }
  175.   };
  176.  
  177.  
  178.  
  179. /**************************************************************************\
  180. *                                                                          *
  181. *   RR WITHOUT POLL (COMMAND)                                              *
  182. *                                                                          *
  183. \**************************************************************************/
  184.  
  185. STENTRY stbl03[NUMSTATS] =
  186.   {
  187.     { xnull  , L2SDSCED },
  188.     { xnull  , L2SLKSUP },
  189.     { xnull  , L2SFRREJ },
  190.     { xnull  , L2SDSCRQ },
  191.     { xnull  , L2SIXFER },
  192.     { xnull  , L2SRS    },
  193.     { xnull  , L2SWA    },
  194.     { xnull  , L2SDBS   },
  195.     { xnull  , L2SIXFER },
  196.     { xnull  , L2SDBS   },
  197.     { xnull  , L2SWADBS },
  198.     { xnull  , L2SWA    },
  199.     { xnull  , L2SWADBS },
  200.     { xnull  , L2SRSDBS },
  201.     { xnull  , L2SRS    },
  202.     { xnull  , L2SRSDBS }
  203.   };
  204.  
  205.  
  206.  
  207. /**************************************************************************\
  208. *                                                                          *
  209. *   RNR WITH POLL (COMMAND)                                                *
  210. *                                                                          *
  211. \**************************************************************************/
  212.  
  213. STENTRY stbl06[NUMSTATS] =
  214.   {
  215.     { xdm    , L2SDSCED },
  216.     { xnull  , L2SLKSUP },
  217.     { xfrmr  , L2SFRREJ },
  218.     { xdm    , L2SDSCRQ },
  219.     { xrrr   , L2SRBS   },
  220.     { xrrr   , L2SRSRBS },
  221.     { xrrr   , L2SWARBS },
  222.     { xrnrr  , L2SBBS   },
  223.     { xrrr   , L2SRBS   },
  224.     { xrnrr  , L2SBBS   },
  225.     { xrnrr  , L2SWABBS },
  226.     { xrrr   , L2SWARBS },
  227.     { xrnrr  , L2SWABBS },
  228.     { xrnrr  , L2SRSBBS },
  229.     { xrrr   , L2SRSRBS },
  230.     { xrnrr  , L2SRSBBS }
  231.   };
  232.  
  233.  
  234.  
  235. /**************************************************************************\
  236. *                                                                          *
  237. *   RNR WITHOUT POLL (COMMAND)                                             *
  238. *                                                                          *
  239. \**************************************************************************/
  240.  
  241. STENTRY stbl07[NUMSTATS] =
  242.   {
  243.     { xnull  , L2SDSCED },
  244.     { xnull  , L2SLKSUP },
  245.     { xnull  , L2SFRREJ },
  246.     { xnull  , L2SDSCRQ },
  247.     { xnull  , L2SRBS   },
  248.     { xnull  , L2SRSRBS }, 
  249.     { xnull  , L2SWARBS },
  250.     { xnull  , L2SBBS   },
  251.     { xnull  , L2SRBS   },
  252.     { xnull  , L2SBBS   },
  253.     { xnull  , L2SWABBS },
  254.     { xnull  , L2SWARBS },
  255.     { xnull  , L2SWABBS },
  256.     { xnull  , L2SRSBBS },
  257.     { xnull  , L2SRSRBS },
  258.     { xnull  , L2SRSBBS }
  259.   };
  260.  
  261.  
  262.  
  263. /**************************************************************************\
  264. *                                                                          *
  265. *   SABM EITHER (COMMAND)                                                  *
  266. *                                                                          *
  267. \**************************************************************************/
  268.  
  269. STENTRY stbl08[NUMSTATS] =
  270.   {
  271.     { xua    , L2SIXFER },
  272.     { xua    , L2SIXFER },
  273.     { xua    , L2SIXFER },
  274.     { xua    , L2SDSCED },
  275.     { xua    , L2SIXFER },
  276.     { xua    , L2SIXFER },
  277.     { xua    , L2SIXFER },
  278.     { xua    , L2SDBS   },
  279.     { xua    , L2SIXFER },
  280.     { xua    , L2SDBS   },
  281.     { xua    , L2SDBS   },
  282.     { xua    , L2SIXFER },
  283.     { xua    , L2SDBS   },
  284.     { xua    , L2SDBS   },
  285.     { xua    , L2SIXFER },
  286.     { xua    , L2SIXFER }
  287.   };
  288.  
  289.  
  290.  
  291. /**************************************************************************\
  292. *                                                                          *
  293. *   DISC EITHER (COMMAND)                                                  *
  294. *                                                                          *
  295. \**************************************************************************/
  296.  
  297. STENTRY stbl09[NUMSTATS] =
  298.   {
  299.     { xdm    , L2SDSCED },
  300.     { xdm    , L2SDSCED },
  301.     { xua    , L2SDSCED },
  302.     { xua    , L2SDSCED },
  303.     { xua    , L2SDSCED },
  304.     { xua    , L2SDSCED },
  305.     { xua    , L2SDSCED },
  306.     { xua    , L2SDSCED },
  307.     { xua    , L2SDSCED },
  308.     { xua    , L2SDSCED },
  309.     { xua    , L2SDSCED },
  310.     { xua    , L2SDSCED },
  311.     { xua    , L2SDSCED },
  312.     { xua    , L2SDSCED },
  313.     { xua    , L2SDSCED },
  314.     { xua    , L2SDSCED }
  315.   };
  316.  
  317.  
  318.  
  319. /**************************************************************************\
  320. *                                                                          *
  321. *   RR WITH FINAL (RESPONSE)                                               *
  322. *                                                                          *
  323. \**************************************************************************/
  324.  
  325. STENTRY stbl10[NUMSTATS] =
  326.   {
  327.     { xnull  , L2SDSCED },
  328.     { xnull  , L2SLKSUP },
  329.     { xnull  , L2SFRREJ },
  330.     { xnull  , L2SDSCRQ },
  331.     { xnull  , L2SIXFER },
  332.     { xnull  , L2SRS    },
  333.     { xnull  , L2SIXFER },
  334.     { xnull  , L2SDBS   },
  335.     { xnull  , L2SIXFER },
  336.     { xnull  , L2SDBS   },
  337.     { xnull  , L2SDBS   },
  338.     { xnull  , L2SIXFER },
  339.     { xnull  , L2SDBS   },
  340.     { xnull  , L2SRSDBS },
  341.     { xnull  , L2SRS    },
  342.     { xnull  , L2SRSDBS }
  343.   };
  344.  
  345.  
  346.  
  347. /**************************************************************************\
  348. *                                                                          *
  349. *   RNR WITH FINAL (RESPONSE)                                              *
  350. *                                                                          *
  351. \**************************************************************************/
  352.  
  353. STENTRY stbl14[NUMSTATS] =
  354.   {
  355.     { xnull  , L2SDSCED },
  356.     { xnull  , L2SLKSUP },
  357.     { xnull  , L2SFRREJ },
  358.     { xnull  , L2SDSCRQ },
  359.     { xnull  , L2SRBS   },
  360.     { xnull  , L2SRSRBS },
  361.     { xnull  , L2SRBS   },
  362.     { xnull  , L2SBBS   },
  363.     { xnull  , L2SRBS   },
  364.     { xnull  , L2SBBS   },
  365.     { xnull  , L2SBBS   },
  366.     { xnull  , L2SRBS   },
  367.     { xnull  , L2SBBS   },
  368.     { xnull  , L2SRSBBS },
  369.     { xnull  , L2SRSRBS },
  370.     { xnull  , L2SRSBBS }
  371.   };
  372.  
  373.  
  374.  
  375. /**************************************************************************\
  376. *                                                                          *
  377. * UA EITHER (RESPONSE)                                                     *
  378. *                                                                          *
  379. \**************************************************************************/
  380.  
  381. STENTRY stbl16[NUMSTATS] =
  382.   {
  383.     { xnull  , L2SDSCED },
  384.     { xnull  , L2SIXFER },
  385.     { xnull  , L2SFRREJ },
  386.     { xnull  , L2SDSCED },
  387.     { xnull  , L2SIXFER },
  388.     { xsabm  , L2SLKSUP },
  389.     { xsabm  , L2SLKSUP },
  390.     { xsabm  , L2SLKSUP },
  391.     { xsabm  , L2SLKSUP },
  392.     { xsabm  , L2SLKSUP },
  393.     { xsabm  , L2SLKSUP },
  394.     { xsabm  , L2SLKSUP },
  395.     { xsabm  , L2SLKSUP },
  396.     { xsabm  , L2SLKSUP },
  397.     { xsabm  , L2SLKSUP },
  398.     { xsabm  , L2SLKSUP }
  399.   };
  400.  
  401.  
  402.  
  403. /**************************************************************************\
  404. *                                                                          *
  405. * DM EITHER (RESPONSE)                                                     *
  406. *                                                                          *
  407. \**************************************************************************/
  408.  
  409. STENTRY stbl17[NUMSTATS] =
  410.   {
  411.     { xnull  , L2SDSCED },
  412.     { xnull  , L2SDSCED },
  413.     { xnull  , L2SDSCED },
  414.     { xnull  , L2SDSCED },
  415.     { xnull  , L2SDSCED },
  416.     { xnull  , L2SDSCED },
  417.     { xnull  , L2SDSCED },
  418.     { xnull  , L2SDSCED },
  419.     { xnull  , L2SDSCED },
  420.     { xnull  , L2SDSCED },
  421.     { xnull  , L2SDSCED },
  422.     { xnull  , L2SDSCED },
  423.     { xnull  , L2SDSCED },
  424.     { xnull  , L2SDSCED },
  425.     { xnull  , L2SDSCED },
  426.     { xnull  , L2SDSCED }
  427.   };
  428.  
  429.  
  430.  
  431. /**************************************************************************\
  432. *                                                                          *
  433. *   FRMR EITHER (RESPONSE)                                                 *
  434. *                                                                          *
  435. \**************************************************************************/
  436.  
  437. STENTRY stbl18[NUMSTATS] =
  438.   {
  439.     { xnull  , L2SDSCED },
  440.     { xnull  , L2SLKSUP },
  441.     { xsabm  , L2SLKSUP },
  442.     { xnull  , L2SDSCRQ },
  443.     { xsabm  , L2SLKSUP },
  444.     { xsabm  , L2SLKSUP },
  445.     { xsabm  , L2SLKSUP },
  446.     { xsabm  , L2SLKSUP },
  447.     { xsabm  , L2SLKSUP },
  448.     { xsabm  , L2SLKSUP },
  449.     { xsabm  , L2SLKSUP },
  450.     { xsabm  , L2SLKSUP },
  451.     { xsabm  , L2SLKSUP },
  452.     { xsabm  , L2SLKSUP },
  453.     { xsabm  , L2SLKSUP },
  454.     { xsabm  , L2SLKSUP }
  455.   };
  456.  
  457.  
  458.  
  459. /**************************************************************************\
  460. *                                                                          *
  461. * STATION BECOMES BUSY                                                     *
  462. *                                                                          *
  463. \**************************************************************************/
  464.  
  465. STENTRY stbl21[NUMSTATS] =
  466.   {
  467.     { xnull  , L2SDSCED },
  468.     { xnull  , L2SLKSUP },
  469.     { xnull  , L2SFRREJ },
  470.     { xnull  , L2SDSCRQ },
  471.     { t2rnrr , L2SDBS   },
  472.     { t2rnrr , L2SRSDBS },
  473.     { t2rnrr , L2SWADBS },
  474.     { xnull  , L2SDBS   },
  475.     { t2rnrr , L2SBBS   },
  476.     { xnull  , L2SBBS   },
  477.     { xnull  , L2SWADBS },
  478.     { t2rnrr , L2SWABBS },
  479.     { xnull  , L2SWABBS },
  480.     { xnull  , L2SRSDBS },
  481.     { t2rnrr , L2SRSBBS },
  482.     { xnull  , L2SRSBBS }
  483.   };
  484.  
  485.  
  486.  
  487. /**************************************************************************\
  488. *                                                                          *
  489. * BUSY CONDITION CLEARS                                                    *
  490. *                                                                          *
  491. \**************************************************************************/
  492.  
  493. STENTRY stbl22[NUMSTATS] =
  494.   {
  495.     { xnull  , L2SDSCED },
  496.     { xnull  , L2SLKSUP },
  497.     { xnull  , L2SFRREJ },
  498.     { xnull  , L2SDSCRQ },
  499.     { xnull  , L2SIXFER },
  500.     { xnull  , L2SRS    },
  501.     { xnull  , L2SWA    },
  502.     { t2rrr  , L2SIXFER },
  503.     { xnull  , L2SRBS   },
  504.     { t2rrr  , L2SRBS   },
  505.     { t2rrr  , L2SWA    },
  506.     { xnull  , L2SWARBS },
  507.     { t2rrr  , L2SWARBS },
  508.     { t2rrr  , L2SRS    },
  509.     { xnull  , L2SRSRBS },
  510.     { t2rrr  , L2SRSRBS }
  511.   };
  512.  
  513.  
  514.  
  515. /**************************************************************************\
  516. *                                                                          *
  517. * T1 EXPIRES (VERSION 2)                                                   *
  518. *                                                                          *
  519. \**************************************************************************/
  520.  
  521. STENTRY stbl23[NUMSTATS] =
  522.   {
  523.     { xnull  , L2SDSCED },
  524.     { xsabm  , L2SLKSUP },
  525.     { xfrmr  , L2SFRREJ },
  526.     { xdisc  , L2SDSCRQ },
  527.     { xrrc   , L2SWA    },
  528.     { xrrc   , L2SWA    },
  529.     { xrrc   , L2SWA    },
  530.     { xrnrc  , L2SWADBS },
  531.     { xrrc   , L2SWARBS },
  532.     { xrnrc  , L2SWABBS },
  533.     { xrnrc  , L2SWADBS },
  534.     { xrrc   , L2SWARBS },
  535.     { xrnrc  , L2SWABBS },
  536.     { xrnrc  , L2SWADBS },
  537.     { xrrc   , L2SWARBS },
  538.     { xrnrc  , L2SWADBS }
  539.   };
  540.  
  541.  
  542.  
  543. /**************************************************************************\
  544. *                                                                          *
  545. *   T3 EXPIRES                                                             *
  546. *                                                                          *
  547. \**************************************************************************/
  548.  
  549. STENTRY stbl24[NUMSTATS] =
  550.   {
  551.     { xnull  , L2SDSCED },
  552.     { xsabm  , L2SLKSUP },
  553.     { xfrmr  , L2SFRREJ },
  554.     { xdisc  , L2SDSCRQ },
  555.     { xrrc   , L2SWA    },
  556.     { xrrc   , L2SWA    },
  557.     { xnull  , L2SWA    },
  558.     { xrnrc  , L2SWADBS },
  559.     { xrrc   , L2SWARBS },
  560.     { xrnrc  , L2SWABBS },
  561.     { xnull  , L2SWADBS },
  562.     { xnull  , L2SWARBS },
  563.     { xnull  , L2SWABBS },
  564.     { xrnrc  , L2SWADBS },
  565.     { xrrc   , L2SWARBS },
  566.     { xrnrc  , L2SWADBS }
  567.   };
  568.  
  569.  
  570.  
  571. /**************************************************************************\
  572. *                                                                          *
  573. *   INVALID N(S) RECEIVED WITHOUT POLL                                     *
  574. *                                                                          *
  575. \**************************************************************************/
  576.  
  577. STENTRY stbl26[NUMSTATS] =
  578.   {
  579.     { xnull  , L2SDSCED },
  580.     { xnull  , L2SLKSUP },
  581.     { xnull  , L2SFRREJ },
  582.     { xnull  , L2SDSCRQ },
  583.     { t2rejr , L2SRS    },
  584.     { xnull  , L2SRS    },
  585.     { xnull  , L2SWA    },
  586.     { t2rnrr , L2SDBS   },
  587.     { t2rejr , L2SRSRBS },
  588.     { t2rnrr , L2SBBS   },
  589.     { xnull  , L2SWADBS },
  590.     { xnull  , L2SWARBS },
  591.     { xnull  , L2SWABBS },
  592.     { t2rnrr , L2SRSDBS },
  593.     { xnull  , L2SRSRBS },
  594.     { t2rnrr , L2SRSBBS }
  595.   };
  596.  
  597.  
  598.  
  599. /**************************************************************************\
  600. *                                                                          *
  601. *   INVALID N(S) RECEIVED WITH POLL                                        *
  602. *                                                                          *
  603. \**************************************************************************/
  604.  
  605. STENTRY stb26b[NUMSTATS] =
  606.   {
  607.     { xdm    , L2SDSCED },
  608.     { xnull  , L2SLKSUP },
  609.     { xfrmr  , L2SFRREJ },
  610.     { xdm    , L2SDSCRQ },
  611.     { xrejr  , L2SRS    },
  612.     { xrejr  , L2SRS    },
  613.     { xrejr  , L2SWA    },
  614.     { xrnrr  , L2SDBS   },
  615.     { xrejr  , L2SRSRBS },
  616.     { xrnrr  , L2SBBS   },
  617.     { xrnrr  , L2SWADBS },
  618.     { xrejr  , L2SWARBS },
  619.     { xrnrr  , L2SWABBS },
  620.     { xrnrr  , L2SRSDBS },
  621.     { xrejr  , L2SRSRBS },
  622.     { xrnrr  , L2SRSBBS }
  623.   };
  624.  
  625.  
  626.  
  627. /* Ende von L2S.C */
  628.